﻿//-----------------------------------------------------------------------
// <copyright file="IRepository.cs" company="OverrideThis">
//     Copyright (c) 2010 OverrideThis.com
// </copyright>
//-----------------------------------------------------------------------
namespace OverrideThis.Core.Infrastucture.Repository
{
    using System;
    using System.Linq;

    /// <summary>
    /// Contract that defines the implementation
    /// of a generic Repository that is to be used
    /// by the Services defined in the system.
    /// </summary>
    public interface IRepository
    {
        void SaveOrUpdate<T>(T entity);

        void Delete<T>(T entity);

        void WithTransaction(Action<IRepository> action);

        IQueryable<T> Get<T>();
    }

    namespace Impl
    {
    }
    
}
